home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 201-225 / disk_222 / plplot / src / source.zoo / plwind.c < prev    next >
C/C++ Source or Header  |  1989-05-15  |  2KB  |  68 lines

  1. #include "plplot.h"
  2.  
  3. void plwind(xmin,xmax,ymin,ymax)
  4. float xmin, xmax, ymin, ymax;
  5. {
  6.     int vppxmi, vppxma, vppymi, vppyma;
  7.     float dx, dy;
  8.     float vpwxmi, vpwxma, vpwymi, vpwyma;
  9.     float vpxmi, vpxma, vpymi, vpyma;
  10.     float wpxscl, wpxoff, wpyscl, wpyoff;
  11.     float wmxscl, wmxoff, wmyscl, wmyoff;
  12.  
  13.     int level;
  14.  
  15.     glev(&level);
  16.     if (level<2) fatal("Please set up viewport before calling PLWIND.");
  17.  
  18.     gvpp(&vppxmi,&vppxma,&vppymi,&vppyma);
  19.     gvpd(&vpxmi,&vpxma,&vpymi,&vpyma);
  20.  
  21.     dx = (xmax-xmin) * 1.0e-5;
  22.     dy = (ymax-ymin) * 1.0e-5;
  23.  
  24.     if ((xmin == xmax) || (ymin == ymax))
  25.         fatal("Invalid window limits in PLWIND.");
  26.    
  27. /* The true plot window is made slightly larger than requested so that */
  28. /* the end limits will be on the graph  */
  29.  
  30.     svpw(xmin-dx,xmax+dx,ymin-dy,ymax+dy);
  31.     gvpw(&vpwxmi,&vpwxma,&vpwymi,&vpwyma);
  32.  
  33. /* Compute the scaling between coordinate systems */
  34.  
  35.     dx = vpwxma - vpwxmi;
  36.     dy = vpwyma - vpwymi;
  37.  
  38.     wpxscl  = (vppxma - vppxmi) / dx;
  39.     wpxoff  = (xmax * vppxmi - xmin * vppxma) / dx;
  40.     wpyscl  = (vppyma - vppymi) / dy;
  41.     wpyoff  = (ymax * vppymi - ymin * vppyma) / dy;
  42.     swp(wpxscl,wpxoff,wpyscl,wpyoff);
  43.  
  44.     vpxmi = dcmmx(vpxmi);
  45.     vpxma = dcmmx(vpxma);
  46.     vpymi = dcmmy(vpymi);
  47.     vpyma = dcmmy(vpyma);
  48.     wmxscl = (vpxma - vpxmi) / dx;
  49.     wmxoff = (xmax * vpxmi - xmin * vpxma) / dx;
  50.     wmyscl = (vpyma - vpymi) / dy;
  51.     wmyoff = (ymax * vpymi - ymin * vpyma) / dy;
  52.     swm(wmxscl,wmxoff,wmyscl,wmyoff);
  53.  
  54.     slev(3);
  55. }SHAR_EOF
  56. cho "extracting plxtik.c"
  57. ed 's/^X//' << \SHAR_EOF > plxtik.c
  58. #include "plplot.h"
  59.  
  60. void plxtik(x,y,below,above)
  61. int x, y, below, above;
  62. {      
  63.       draphy(x,y);
  64.       if (below != 0) draphy(x,y-below);
  65.       if (above != 0) draphy(x,y+above);
  66.       draphy(x,y);
  67. }
  68.